/*
 * IMetodosMenu.java
 * 
 * Created on September 19, 2005, 2:47 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package ig.metrica.ui.interfaces.comunes;


import ig.util.NoContinuaException;
import java.awt.Component;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;

/**
 *
 * @author edjaiv
 */
public interface IMetodosPantallas {
    
    
    public abstract JInternalFrame getInternalFrame();
    
    /**
     *<p>se debe sobreescribir para ejecutar tareas de validacion antes
     *de guardar, de actualizar datos o de buscar alguno
     */
    public abstract void validar()throws NoContinuaException;
    
    
    /**
     * <p>Metodo que se debe sobreescribir si se quiere manejar el
     * evento cuando el usuario hace click sobre guardar</p>
     *
     */
    public  abstract void guardar() throws NoContinuaException;
    
    /**
     * <p>Metodo que se debe sobreescribir si se quiere manejar el
     * evento cuando el usuario hace click sobre buscar</p>
     *
     */
    public abstract void buscar() throws NoContinuaException;
    
    /**
     * <p>Metodo que se debe sobreescribir si se quiere manejar el
     * evento cuando el usuario hace click sobre modificar</p>
     *
     */
    public abstract void modificar() throws NoContinuaException;
    
    
    /**
     * <p>Metodo que se debe sobreescribir si se quiere manejar el
     * evento cuando el usuario hace click sobre nuevo</p>
     *
     */
    public  abstract void nuevo() throws NoContinuaException;
    
    /**
     * <p>Metodo que se debe sobreescribir si se quiere manejar el
     * evento cuando el usuario hace click sobre eliminar</p>
     *
     */
    public  abstract void eliminar() throws NoContinuaException;
    
    /**
     * <p>Metodo que se debe sobreescribir si se quiere manejar el
     * evento cuando el usuario hace click sobre salir</p>
     *
     */
    public abstract void salir() throws NoContinuaException;
    
    /**
     * <p>Metodo que se debe sobreescribir si se quiere manejar el
     * evento cuando el usuario hace click sobre imprimir</p>
     *
     */
    public  abstract void imprimir() throws NoContinuaException;

    /**
     * Metodo cancelar
     * @throws NoContinuaException 
     */
    public abstract void cancelar() throws NoContinuaException;
    
    /**
     * Metodo que retorna todos los controles del componente
     * @return 
     */
    public abstract Component[] getControles();
    

    /**
     * Metodo que retorna el objeto principal para exportar a XML
     * @return 
     */
    public abstract Object getObjectToXML();
    
    /**
     * La extencion para el archivo
     * @return 
     */
    public abstract String getExtencionExportacion();
    
    /**
     * Metodo para setiar un objeto cargado desde un XML
     * @param object 
     */
    public abstract void setObjectToXML(Object object);
    
    /**
     * El nombre del archivo a exportar
     * @return 
     */
    public abstract String getNombreExportacion();
        
    
    
    public abstract void setFrame(JFrame frame);
    
    public abstract JFrame  getFrame();
    
}
